package la.foton.homebroker.negocio.entidade;

import java.util.ArrayList;
import java.util.List;

import la.foton.homebroker.negocio.validador.ViolacaoNegocioException;

public class Carteira {

	public Carteira() {
		Acao acoes = new Acao();

		ItemCarteira itemCarteira = new ItemCarteira();
		itemCarteira.setAcao(acoes);
		itemCarteira.setQuantidade(10);

		ItemCarteira itemCarteira1 = new ItemCarteira();
		itemCarteira1.setAcao(acoes);
		itemCarteira1.setQuantidade(10);

		itensCateira.add(itemCarteira);
	}

	private List<ItemCarteira> itensCateira;

	public List<ItemCarteira> getItensCateira() {
		return itensCateira;
	}

	public void setItensCarteira(List<ItemCarteira> itensCateira) {
		this.itensCateira = itensCateira;
	}

	public List<Acao> getListaAcoes() {
		List<Acao> acoes = new ArrayList<Acao>();

		for (ItemCarteira item : itensCateira) {
			acoes.add(item.getAcao());
		}
		return acoes;
	}

	public void atualizaPosicao(Ordem ordem) {
		for (ItemCarteira item : itensCateira) {
			if (item.getAcao().equals(ordem.getAcao()))
			{
				item.atualizaPosicao(ordem);
			}
		}
	}

	public void validaVenda(Ordem ordem) throws ViolacaoNegocioException {
		for (ItemCarteira item : itensCateira) {
			if (item.getAcao().equals(ordem.getAcao())) {
				if (ordem.getQuantidadeSolicitada() > item.getQuantidade())
					throw new ViolacaoNegocioException(
							"Não há saldo suficiente da ação em sua carteira para realizar a negociação");
			}
		}
	}
}
